Traitement des données avec Python

Nous allons aborder les fonctions succinctes qui nous permettrons de filtrer l'image.

Exécutez le programme suivant : 

from PIL import Image
img = Image.open("couleurs.jpg")
print("Format, taille et codage de l'image :")
l, h = img.size
formI=img.format
codeI=img.mode
print(formI, l, h, codeI )
imshow(img)   #affiche l'image

1. Afin d'afficher les codes RVB de chaque pixel de l'image, nous devons réaliser la lecture de tous les pixels d'une ligne et ce, sur chaque ligne. Nous devons alors réaliser une boucle qui se déplace en x sur toute la largeur dans une autre boucle qui se déplace en y sur toute la hauteur. Complétez la procédure "affichePix(image)" qui affiche tous les pixels de l'image.

def affichePix(image):
   l,h = image.size
    for y in range(h):
        # A compléter

affichePix(img)

Pour effectuer des modifications sur une image, nous devons créer une nouvelle image RVB ayant les mêmes dimensions que la première : newimg = Image.new("RGB", (l,h))
Nous pouvons alors remplir cette nouvelle image avec des pixels : newimg.putpixel((x,y),(rvb[0],rvb[1],rvb[2])).
Pour créer un filtre de couleur rouge sur l’image, il suffit de supprimer les pixels Verts et Bleus et de garder uniquement les pixels Rouges. Vous devez donc :

  • Créer une nouvelle image de dimensions l, h
  • Pour chaque pixel, lire le pixel de l'image d'origine, le modifier et le placer dans la nouvelle image

2. Réalisez la fonction filtreR() qui prend comme paramètre l’image "perroquet.jpg" et retourne la nouvelle image filtrée. Affichez la à l’écran.
    l,h = image.size
    newimg = Image.new("RGB",(l,h))
    
    # A compléter
    
    return newimg

img2 = Image.open("perroquet.jpg")
perroquetR = filtreR(img2)
img2.show()

Pour transformer une image en niveaux de gris, nous utilisons la méthode convert() comme suit : imgNG = img.convert(‘L’).
3. Transformez l’image en niveaux de gris "perroquetNG" et l'afficher.

On désire transformer l'image en niveau de gris précédente par une image en noir et blanc. Nous devons donc remplacer les pixels inférieurs à 128 par 0 et ceux supérieurs à 128 par 255.

4. Complétez et exécutez le programme suivant :

l, h = perroquetNG.size
perroquetNB = Image.new("L",(l,h))

# A compléter

Source : https://lesmanuelslibres.region-academique-idf.fr
Télécharger le manuel : https://forge.apps.education.fr/drane-ile-de-france/les-manuels-libres/snt-seconde ou directement le fichier ZIP
Sous réserve des droits de propriété intellectuelle de tiers, les contenus de ce site sont proposés dans le cadre du droit Français sous licence CC BY-NC-SA 4.0